Type: entity
Confidence: 0.90
Created: 2026-04-26
Updated: 2026-04-26
Tags: programmingsoftware-engineeringcomputer-sciencepaper机器人学

Go To Statement Considered Harmful

概述

Dijkstra在1968年发表的著名论文,论证了goto语句从根本上破坏了程序的逻辑结构可理解性,主张仅使用顺序、选择和循环三种控制结构来组织程序,为结构化编程运动奠定思想基石。

关键内容

  1. 核心论点:论文论证了goto语句从根本上破坏了程序的逻辑结构可理解性,使程序员无法在静态的程序文本与动态的执行过程之间建立可靠的心智对应。Dijkstra提出程序应当仅使用顺序(sequence)、选择(selection)和循环(iteration)三种控制结构来组织。

  2. 背景问题:1968年正值软件危机时期,当时主流编程语言都大量依赖goto语句,产生了"意大利面条式代码"。Dijkstra认为goto语句是程序正确性论证的最大障碍。

  3. 理论基础:论文建立在Bohm-Jacopini定理之上,该定理证明任何使用goto语句的程序都可以用仅包含顺序、条件选择和循环三种结构的等价程序替换。因此goto在表达能力上是冗余的。

  4. 历史影响:这篇不到两页的编辑来信引发了结构化编程革命,直接影响了此后五十年间几乎所有编程语言的设计决策,包括Pascal、Java、Python等现代语言都限制或禁止了goto的使用。

来源

相关